package cool.mor.service;

import cool.mor.dto.DepartmentEditorDto;
import cool.mor.dto.PersonnelManagementPageQueryDto;
import cool.mor.dto.PersonnelManagementSalaryQueryDto;
import cool.mor.dto.RewardAndPunishmentRecordDto;
import cool.mor.entity.Employee;
import cool.mor.form.DepartmentEditorForm;
import cool.mor.form.EmployeeForm;
import cool.mor.form.PersonnelManagementPageQueryForm;
import cool.mor.form.RewardAndPunishmentRecordForm;
import org.springframework.data.domain.Page;

/**
 * @author Ivan
 * 人事管理服务
 */
public interface PersonnelManagementService {
    /**
     * 根据前端的分页信息来进行分页查询
     * @param personnelManagementPageQueryForm 主要的两个参数：page--->第几页    size--->一页有几条数据
     * @return
     */
    PersonnelManagementPageQueryDto queryPersonnelManagementDataByPage(PersonnelManagementPageQueryForm personnelManagementPageQueryForm);

    /**
     * 根据员工id来查询人事管理功能所需的奖惩总额和薪资总和
     * @param employeeId   员工id
     * @return
     */
    PersonnelManagementSalaryQueryDto queryPersonnelManagementSalary(String employeeId);

    /**
     * 根据部门编辑的表单（入职日期，部门，职位） 来更新员工信息
     * @param employeeForm
     * @return
     */
    DepartmentEditorDto updateDepartmentEditor(EmployeeForm employeeForm);

    /**
     * 根据奖惩记录表单数据来添加员工的奖惩记录
     * @param rewardAndPunishmentRecordForm
     * @return
     */
    RewardAndPunishmentRecordDto addRewardAndPunishmentRecord(RewardAndPunishmentRecordForm rewardAndPunishmentRecordForm);
}
